STEP Release Notes

July 17, 2003, version 1.0

Introduction --- What are new --- Installation --- How to use STEP --- Tool --- XSTEP --- Link

STEP (Scripting Technology for Embodied Persona) is a scripting language for embodied agents, in particular for their communicative acts like gestures and postures. STEP will be extended for other communicative acts, like facial expression and speech. STEP has been implemented in the distributed logic programming language DLP, a tool for the implementation of 3D web agents

What are new in the release 1.0

  • Performance improvement: single thread for parellel turn actions.
    par_turn(Agent,[body_direction(Body1,Direction1),...,body_direction(Bodym,Direcitonm)],Speed): uses only one thread to achieve the parellel turn action:
    par([turn(Agent,Body1,Direction1,Speed),...,turn(Agent,Bodym,Directionm,Speed)]).

  • Ontological support for several face objects: l_eyebrow, r_eyebrow, l_eyeball, r_eyeball, l_eyelid_up, l_eyelid_down, r_eyelid_up, r_eyelid_down, teeth_up, teath_down, tongue.

    Installation

  • If you have installed DLP (dlp1r18N, or later), just put the STEP engine (step_engine.jar) into the DLP classes directory.
  • If you have the older version of DLP (dlp1r18M, or earlier), or no DLP installed in your computer, you have to install the required DLP first, then follow the instruction above.

    How to use STEP in DLP

    1. Design your own humanoids and vitual worlds in VRML. Humanoids can be constructed based on a
    humanoid prototype, or without prototype. We call the former approach humanoid-object one, the latter non-humanoid-object one.

    2. Set the humanoid object properties in the file 'stepsetting.pl' and compile it (i.e, execute the commandline: dlpc stepsetting.pl) Suppose the humanoid's name is 'myhumanoid'. For humanoid-object one, add the following line in the file:

    humanoid_objects(myhumanoid, true):-!.
    For non-humanoid-object ones, add the following line in the file:
    humanoid_objects(myhumanoid, false):-!.

    3. Design your own STEP script actions and add them into your STEP libraries. The name of the main script library is the file 'stepscriptlib.pl'. Note that do not change the object name or the file name of the main script library. You can design your own script libraries with your own library object names, like my_own_scritplib. However, you have to add the following library claim for it in the main script library:

    script(ScriptAction, Action):-
    my_own_scriptlib <- script(ScriptAction,Action),!.

    Note that you have to compile all of your own script libraries. Due to the limit of the Java virtual machine, the size of each script library cannot be large than 64KB after the compiling. Split a large library into multiple ones.

    You can use the STEP authoring tools to design and test your own script actions, then add them into the library. You can also use the XSTEP editor to design the actions in XSTEP and transfer them in STEP/DLP codes, then copy them into the library file.

    4. Design your own DLP application. The file 'steptest.pl' is a template for it. Script actions can be called by the following predicates:

    process_script(ScriptAction): execute the script action ScriptAction in the library.
    do_script(Script): execute the script Script.

    Note that all of the scripts/script actions must be instantated ones when they are called. Keep the step_kernel in the heading of your application object. Keep the following lines in the beginning of your applications

    text_area(BrowserStream),
    set_output(BrowserStream),
    set_max_threads(15),
    script_threads,

    The first two lines initialize the dlpbrow object, the third one sets the number of the maximal threads, and the last line initializes the parallel processing in STEP engine.

    5. Design an html file to launch your own application applet. Do not forget to have step_engine.jar in the archive statement in the html file. The file 'stepdemo.html' is a template for it.

    STEP authoring tools

    STEP Tool Package consists of several STEP authoring tools, including a STEP testbed and a rotation measure tool. You can use these tools to load any h-anim humanoid avatar and test your own scripting actions on the avatars online without the installation of any STEP software or DLP tool.

    XSTEP

    XSTEP is an XML-based markup/scripting language for embodied agents. It is the XML version of STEP. The XSTEP Editor would help you to edit XSTEP and STEP scripts and translate XSTEP scripts into STEP scripts on IBM's XML editor Xeena.

    top

    STEP interface for Javascripts

    The file 'stepjsi.jar' is the STEP interface for Javascripts. In Javascripts, adding a line like this:
    appletQueue( "term: command");
    would call the STEP engine to execute certain tasks, where the command can be one of the following methods.

  • do_action(Action): do the Action.
  • loadurl(URL): load the URL.
  • pose_reset(Agent): do the body pose reset action in the stepscriptlib_basic.
  • finger_pose_reset(Agent): reset the finger joints (for LOA2 avatars).
  • getScriptData(Script,JSMethod, ParameterList): do the scripting action, and then return the parameters to the method in the javascript.
  • stop: stop the STEP engine applet.

    STEP Script Libraries

  • Touch based on Inverse Kinematics by Zhisheng Huang
    The file
    steplib_touch.jar is a script library with the actions of touch based on inverse kinematics.
    Library name: step_scriptlib_touch
    Script actions:
    touch_absolutePosition(Agent,position(X,Y,Z), Hand): The Agent would touch the position (X,Y,Z) with a hand, where 'l' means the left hand, and 'r' means the right hand.
    touch(Agent,position(X,Y,Z), Hand): The Agent would touch the position (X,Y,Z) which is relative to the body coordinate system with a hand.
    touchValue(Agent,position(X,Y,Z), Hand, [ShoulderRotation,ElbowRotation,WristRotation]): Returning the rotation values of the joints for the touch action (relative to the body coordinate).

    Links

  • WASP Project
  • STEP homepage
  • Distributed Logic Programming Language (DLP)
  • Humanoid Animation Working Group
  • Update Records

    What are new in the release 0.42 (April 2, 2003)

  • Timing performance improvement.
  • Support the global tempo commands: set_tempo(Tempo) and get_tempo(Tempo).

    What are new in the release 0.41 (March 6, 2003)

  • STEP interface for Javascripts.
  • STEP script library: touch based on inverse kinematics.
  • STEP 0.41 supports DLP(dlp1r18M).

    What are new in the release 0.40 (Feb 4, 2003)

  • Extension of the do-operator support: The do-operator supports the predicates of the vectorlib in dlp1r18K.
  • The max thread limit change: Users can change the number of maximal threads.

    What are new in the release 0.38 (Septemper 24, 2002)

  • Extension of the do-operator support: The do-operator supports all of the 3D predicates in DLP bcilib.
  • New syntax in scripting actions: Scripting actions can be a formula without the claim 'script' in the body part of a rule.
  • Fix a bug in the process of parallel actions.
  • Fix a bug in the move-body operator.

    What are new in the release 0.37 (August 29, 2002)

  • LOA2 ontology: STEP ontology is extended to LOA2 joints of H-anim standard.
  • Nonlinear Slerp interpolation: The STEP engine supports the nonlinear slerp interpolation.
  • Multiple script library support: The STEP script libraries can be hierarchical or modular.

    What are new in the release 0.35 (June 13, 2002)

  • Component-based architecture: STEP consists of four components: STEP engine, script library, application interface, STEP setting.
  • Slerp interpolation: The STEP engine uses the slerp interpolation to avoid the abnormality of the interpolation between two rotations.
  • New release of DLP: The STEP engine is based on the new release of DLP (dlp1r18K #4). Its performance is improved.

    top


    Contact Zhisheng Huang for comments, suggestions, or bug reporting.